package com.tedu.shoot;

import java.awt.*;
import java.awt.image.BufferedImage;

/**
 * Date：2021年09月
 * Author：程Sir
 * Content:
 *  飞行物的基类（超类、父类）
 */
public abstract class FlyingObject {
    // 适用于hero、sky、bullet
    public FlyingObject(int x, int y, int wdith, int height){
        this.wdith = wdith;
        this.height= height;
        this.x = x;
        this.y = y;
    }
    // 适用于bee、bigAirplane、airplane
    public FlyingObject(int wdith, int height){
        this.wdith = wdith;
        this.height= height;
        this.x = (int)(Math.random()*(World.WIDTH-this.wdith));
//        this.y = -this.height;
        // 如果要测试飞行物是否产生，则需要将出生的位置设置在界面里面，那么x和 y都得是正数
        this.y = this.height;
    }

    //声明的第一种状态：活着的
    public static final int LIVE = 0;
    //声明的第一种状态：死了的
    public static final int DEAD = 0;
    //声明的第一种状态：可移除状态【指的是从飞行物移除】
    public static final int REMOVE = 0;
    // 表示游戏中飞行物的状态
    public int state = LIVE;


    // 宽高表示大小
    public int wdith;
    public int height;
    // 位置
    public int x;
    public int y;
    // 飞行物获取图片
    public abstract BufferedImage getImage();

    // 飞行物的移动
    public abstract void step();

    /**
     * 画飞行物的方法
     * @param g 表示画笔
     */
    public void paint(Graphics g){
        g.drawImage(this.getImage(),this.x,this.y,null);
    }

}
